<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>作业</title>
    <style>
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        span {
            width: 20px;
            height: 20px;
            display: inline-block;
        }
    </style>
</head>

<body>
    <script>
        // //1.斐波那数列：1，1，2，3，5，8，13，21，34，55，89... 求第n个数
        // n = prompt("输入一个数")
        // let f1 = 1, f2 = 1, f3
        // for (let i = 0; i < n-2; i++) {
        //     f3 = f1 + f2
        //     f1 = f2
        //     f2 = f3
        // }
        // console.log(f3);





        // // 2.判断一个数组是否对称
        // let datas = [1, 2, 3, 4, 3, 2, 1]
        // let if_symmetry = true
        // for (let i = 0; i < datas.length/2; i++) {
        //     if (datas[i] != datas[datas.length - i - 1]) {
        //         console.log("不对称");
        //         if_symmetry = false
        //         break
        //     }
        // }
        // if (if_symmetry) {
        //     console.log("对称");
        // }







        // // 3.删除指定数组中所有的奇数 [1,2,2,3,4,5,5,6,7,8,9]结果 [2,4,6,8]
        // let datas = [1, 2, 2, 3, 4, 5, 5, 6, 7, 8, 9]
        // let result = []
        // for (let data of datas) {
        //     if (data % 2 == 0) {
        //         result.push(data)
        //     }
        // }
        // result=[...new Set(result)]
        // console.log(result);





        // // 4.随机10个不同的位于10-30之间的数放入数组，总共随机了多少次
        // let result = []
        // let count = 0
        // while (true) {
        //     let num = Math.floor(Math.random() * (30 - 10 + 1) )+ 10;
        //     count++;
        //     if (!result.includes(num)) {
        //         result.push(num)
        //     }
        //     if (result.length == 10) {
        //         break
        //     }
        // }
        // console.log("次数 ", count);
        // console.log("元素", result);







        // // 5.统计一个字符串中每个字符出现的次数
        // let values = "asaade";
        // let datas = {};
        // for (let i = 0; i < values.length; i++) {        // 遍历字符串中的每个字符
        //     let data = values[i];
        //     if (data in datas) {            // 检查字符是否已经在 charCount 对象中
        //         datas[data]++;                // 如果存在，将该字符对应的出现次数加 1
        //     } else {
        //         datas[data] = 1;      // 不存在，将该字符作为键添加到对象中，并将出现次数初始化为 1
        //     }
        // }
        // for (let data in datas) {        // 遍历 charCount 对象，输出每个字符及其出现的次数
        //     console.log(`${data}: ${datas[data]}`);
        // }






        // // 6.找出1000以内所有的完数（所有因子之和等于本身）
        // for (let i = 2; i < 1001; i++) {
        //     let total = 0
        //     for (let j = 1; j < i; j++) {
        //         if (i % j == 0) {
        //             total += j
        //         }
        //     }
        //     if (total == i) {
        //         console.log(i);
        //     }
        // }






        // 7.使用for循环控制9行9列各种三角形的展示
        // for (let i = 0; i < 9; i++) {
        //     for (let j = 0; j < 9; j++) {
        //         if (i + j >= 8 && i >= j || i + j <= 8 && i <= j) {
        //             document.write("<span>0</span>")
        //         }
        //         else {
        //             document.write("<span>1</span>")
        //         }
        //     }
        //     document.write("<br>")
        // }

        // for (let i = 0; i < 9; i++) {
        //     for (let j = 0; j < 9; j++) {
        //         if (i + j >= 8 && i >= j ) {
        //             document.write("<span>0</span>")
        //         }
        //         else {
        //             document.write("<span> </span>")
        //         }
        //     }
        //     document.write("<br>")
        // }

        // for (let i = 0; i < 9; i++) {
        //     for (let j = 0; j < 9; j++) {
        //         if (i + j <= 8 && i <= j) {
        //             document.write("<span>0</span>")
        //         }
        //         else {
        //             document.write("<span> </span>")
        //         }
        //     }
        //     document.write("<br>")
        // }


        // for (let i = 0; i < 9; i++) {
        //     for (let j = 0; j < 9; j++) {
        //         if (i + j <= 8 && i >= j) {
        //             document.write("<span>0</span>")
        //         }
        //         else {
        //             document.write("<span> </span>")
        //         }
        //     }
        //     document.write("<br>")
        // }


        // for (let i = 0; i < 9; i++) {
        //     for (let j = 0; j < 9; j++) {
        //         if (i + j >= 8 && i <= j) {
        //             document.write("<span>0</span>")
        //         }
        //         else {
        //             document.write("<span> </span>")
        //         }
        //     }
        //     document.write("<br>")
        // }




        // // 8.输入两个数，求两个数的最大公约数，最小公倍数
        // let i = parseInt(prompt("输入数字"));
        // let j = parseInt(prompt("输入数字"));
        // let max_value = i > j ? i : j;
        // let min_value = i < j ? i : j;

        // // 求最小公倍数
        // while (true) {
        //     if (max_value % i === 0 && max_value % j === 0) {
        //         break;
        //     }
        //     max_value++;
        // }

        // // 求最大公约数
        // while (true) {
        //     if (i % min_value === 0 && j % min_value === 0) {
        //         break;
        //     }
        //     min_value--;
        // }

        // console.log("最大公因数：", min_value);
        // console.log("最小公倍数：", max_value);












        // // 9.判定bcd是不是abcdefghijkl的子字符串
        // let datas1 = "abcdefghijkl"
        // let datas2 = "bcd"
        // let not_son = true
        // for (let i = 0; i < datas1.length - datas2.length + 1; i++) {
        //     if (datas1[i] === datas2[0] && datas1[i + 1] === datas2[1] && datas1[i + 2] === datas2[2]) {
        //         console.log("是");
        //         not_son = false
        //         break
        //     }
        // }
        // if (not_son) {
        //     console.log("不是");
        // }






        // // 10.使用for与while找到1000以内最大的10个质数
        // let datas = []
        // for (let i = 1000; i >= 2; i--) {
        //     let is_prime = true
        //     for (let j = 2; j < i; j++) {
        //         if (i % j == 0) {
        //             is_prime = false
        //             break
        //         }
        //     }
        //     if (is_prime) {
        //         datas.push(i);
        //         if (datas.length === 10) {
        //             break;
        //         }
        //     }
        // }
        // console.log(datas);









        // // 11.随机生成5-10之间的数字，直到所有数字之和大于100，计算随机次数
        // let count = 0
        // let total = 0
        // while (true) {
        //     let num = Math.random() * (10 - 5 + 1) + 5;
        //     count++;
        //     total += num
        //     if (total > 100) {
        //         break
        //     }
        // }
        // console.log("次数 ", count);
        // console.log("总和: ", total);





        // // 12.连续输入10个数字， 打印输入数字最大值与最小值的差
        // let result = [];
        // let max_value = -Infinity;
        // let min_value = Infinity;

        // for (let i = 0; i < 10; i++) {

        //     let input = prompt(`请输入第 ${i + 1} 个数字：`);
        //     let num = parseInt(input);      //  parseInt    转整数
        //     result.push(num);
        // }

        // for (let e of result) {
        //     if (e > max_value) {
        //         max_value = e;
        //     }

        //     if (e < min_value) {
        //         min_value = e;
        //     }
        // }
        // console.log("最大数：", max_value);
        // console.log("最小数：", min_value);
        // console.log("差：", max_value - min_value);







        // // 13.随机10个数字放入列表，找到列表中最大值与最小值的差
        // let result = []
        // let max_value = -Infinity    // -Infinity    复无穷
        // let min_value = Infinity     //  Infinity    正无穷
        // while (true) {
        //     let num = Math.random() * (30 - 5 + 1) + 5;
        //     if (!result.includes(num)) {
        //         result.push(num)
        //     }
        //     if (result.length == 10) {
        //         break
        //     }
        // }
        // for (let e of result) {
        //     if (e > max_value) {
        //         max_value = e
        //     }
        //     if (e < min_value) {
        //         min_value = e
        //     }
        // }
        // console.log("最大数：", max_value);
        // console.log("最小数：", min_value);
        // console.log("差：", max_value - min_value);







        // // 14.重复输入数字，如果连续输入两次素数则退出程序，否则继续输入
        // let count = 0;
        // while (true) {
        //     let input = prompt("输入数字");
        //     let value = parseInt(input);
        //     let isPrime = true;
        //     let i = 2;
        //     while (i < value) {
        //         if (value % i === 0) {
        //             isPrime = false;
        //             break;
        //         }
        //         i++;
        //     }

        //     if (isPrime) {
        //         count++;
        //     } else {
        //         count = 0;
        //     }

        //     if (count === 2) {
        //         console.log("连续2个素数,退出");
        //         break;
        //     }
        // }










    </script>
</body>

</html>